package models

import "gorm.io/gorm/schema"

// BlockContent 块内容，可定义多个块内容，单个块内容只有一个
type BlockContent struct {
	Id int64 `json:"id" gorm:"primary_key"`
	SqlTimeFields

	Code    string `json:"code" gorm:"index:idx_code"`         //块内容唯一标识，可重复，重复的视为多个
	Name    string `json:"name" gorm:"type:varchar(64);"`      // 块名称
	Type    string `json:"type" gorm:"type:varchar(16);"`      // 类型，字符串形式,见下面的枚举
	Content string `json:"content" gorm:"type:varchar(1000);"` // 块展示内容，最多1000，如更长推荐存oss等
}

func (s *BlockContent) TableName(namer schema.Namer) string {
	return namer.TableName("blocks")
}

// 块类型type枚举值
const (
	BlockTextType  = "text"
	BlockImageType = "image"
	BlockCodeType  = "code"
	BlockLinkType  = "link"
)
